/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hatapps.pollafutbolera.entityFacade.install;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import com.hatapps.pollafutbolera.entityFacade.ConfiguracionFacadeLocal;
import com.hatapps.pollafutbolera.entity.Configuracion;
import com.hatapps.pollafutbolera.entityFacade.TorneoFacadeLocal;
import com.hatapps.pollafutbolera.entity.Torneo;
import com.hatapps.pollafutbolera.entityFacade.UsuarioFacadeLocal;
import com.hatapps.pollafutbolera.entity.Usuario;
import com.hatapps.util.EncryptUtil;
import java.security.NoSuchAlgorithmException;

/**
 *
 * @author jssepulveda
 */
@Singleton
@Startup
public class InitEntitysService {

    private static final org.apache.log4j.Logger LOGGER
            = org.apache.log4j.Logger.getLogger(InitEntitysService.class);
    // @Inject @Config("status.proyect")
    @EJB
    private ConfiguracionFacadeLocal ConfiguracionFacade;
    @EJB
    private TorneoFacadeLocal torneoFacadeLocal;
    @EJB
    private UsuarioFacadeLocal usuarioFacadeLocal;

    /**
     * 1. dependiendo de un parametro de configuracion el sistema debe
     * determinar que entidades debe crear (produccion=solo lo basico,
     * desarrollo=todo lo que se especifique como escenarios de prueba)
     */
    @PostConstruct
    private void init() {
        initEntitysHelper();
    }

    /**
     * metodo encargado de la inicializacion de las entidades que van a estar
     * disponibles en el sistema, para ello depende del valor que indique el
     * estado del proyecto (desarrollo, produccion)
     */
    private void initEntitysHelper() {
        try {
            if (ConfiguracionFacade.count()!=0) {
                Usuario ivan = new Usuario();
                ivan.setNombreUsuario("ivanbanos");
                ivan.setContrasena(EncryptUtil.encryptPassword("chaman89"));
                usuarioFacadeLocal.create(ivan);
                Torneo t = new Torneo();
                t.setNombre("Liga postobon 2014-I");
                torneoFacadeLocal.create(t);
                Configuracion torneoActual = new Configuracion();
                torneoActual.setNombre("torneoActual");
                torneoActual.setValor("Liga postobon 2014-I");
                ConfiguracionFacade.create(torneoActual);
                Configuracion admin = new Configuracion();
                admin.setNombre("Administrador");
                admin.setValor("ivanbanos");
                ConfiguracionFacade.create(admin);
            }
        } catch (NoSuchAlgorithmException ex) {
        }
    }
}
